package com.ruoyi.service.impl;

import java.util.List;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.mapper.CarMessageMapper;
import com.ruoyi.domain.CarMessage;
import com.ruoyi.service.ICarMessageService;

/**
 * 消息中心Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-01-27
 */
@Service
public class CarMessageServiceImpl implements ICarMessageService 
{
    @Autowired
    private CarMessageMapper carMessageMapper;

    /**
     * 查询消息中心
     * 
     * @param id 消息中心主键
     * @return 消息中心
     */
    @Override
    public CarMessage selectCarMessageById(Integer id)
    {
        return carMessageMapper.selectCarMessageById(id);
    }

    /**
     * 查询消息中心列表
     * 
     * @param carMessage 消息中心
     * @return 消息中心
     */
    @Override
    public List<CarMessage> selectCarMessageList(CarMessage carMessage)
    {
        System.out.println("=== 开始查询消息列表 ===");
        System.out.println("查询条件: " + carMessage);
        
        List<CarMessage> result = carMessageMapper.selectCarMessageList(carMessage);
        
        System.out.println("查询结果数量: " + result.size());
        
        for (int i = 0; i < result.size(); i++) {
            CarMessage message = result.get(i);
            System.out.println("第" + (i + 1) + "条消息:");
            System.out.println("  ID: " + message.getId());
            System.out.println("  用户ID: " + message.getUid());
            System.out.println("  标题: " + message.getTitle());
            System.out.println("  内容: " + message.getContent());
            System.out.println("  时间: " + message.getTime());
            System.out.println("  已读: " + message.getRead());
            System.out.println("  删除: " + message.getDeleted());
            System.out.println("---");
        }
        
        System.out.println("=== 查询完成 ===");
        
        return result;
    }

    /**
     * 根据用户ID查询消息列表
     * 
     * @param userId 用户ID
     * @return 消息列表
     */
    @Override
    public List<CarMessage> selectCarMessageByUserId(Integer userId)
    {
        CarMessage query = new CarMessage();
        query.setUid(userId);
        query.setDeleted(0);
        return carMessageMapper.selectCarMessageList(query);
    }

    /**
     * 新增加消息中心
     * 
     * @param carMessage 消息中心
     * @return 结果
     */
    @Override
    public int insertCarMessage(CarMessage carMessage)
    {
        carMessage.setTime(new Date());
        carMessage.setRead(0);
        carMessage.setDeleted(0);
        return carMessageMapper.insertCarMessage(carMessage);
    }

    /**
     * 修改消息中心
     * 
     * @param carMessage 消息中心
     * @return 结果
     */
    @Override
    public int updateCarMessage(CarMessage carMessage)
    {
        return carMessageMapper.updateCarMessage(carMessage);
    }

    /**
     * 批量删除消息中心
     * 
     * @param ids 需要删除的消息中心主键
     * @return 结果
     */
    @Override
    public int deleteCarMessageByIds(Integer[] ids)
    {
        return carMessageMapper.deleteCarMessageByIds(ids);
    }

    /**
     * 删除消息中心信息
     * 
     * @param id 消息中心主键
     * @return 结果
     */
    @Override
    public int deleteCarMessageById(Integer id)
    {
        return carMessageMapper.deleteCarMessageById(id);
    }

    /**
     * 标记消息为已读
     * 
     * @param id 消息ID
     * @return 结果
     */
    @Override
    public int markMessageAsRead(Integer id)
    {
        CarMessage message = new CarMessage();
        message.setId(id);
        message.setRead(1);
        return carMessageMapper.updateCarMessage(message);
    }

    /**
     * 获取用户未读消息数量
     * 
     * @param userId 用户ID
     * @return 未读消息数量
     */
    @Override
    public int getUnreadMessageCount(Integer userId)
    {
        CarMessage query = new CarMessage();
        query.setUid(userId);
        query.setRead(0);
        query.setDeleted(0);
        List<CarMessage> messages = carMessageMapper.selectCarMessageList(query);
        return messages != null ? messages.size() : 0;
    }
}
